/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package RRHH_controlador;

import ADMINISTRACION_MODELO.ADM_TIPO_ACTIVO_FUNGIBLE;
import ADMINISTRACION_MODELO.ADM_TIPO_ACT_FUN_USU;
import Conexion.Conexion;
import Modelo.SIS_EVENTOS;
import RRHH_Modelo.RHH_CARGO;
import RRHH_Modelo.RHH_CARGO_DATOS;
import RRHH_Modelo.RHH_CARGO_DEP_REG_SUC;
import RRHH_Modelo.RHH_CONTRATO_DIRECTO;
import RRHH_Modelo.RHH_CONVOCATORIA;
import RRHH_Modelo.RHH_CUENTAS;
import RRHH_Modelo.RHH_DATOS;
import RRHH_Modelo.RHH_DEPARTAMENTO;
import RRHH_Modelo.RHH_FECHAS_HITO;
import RRHH_Modelo.RHH_PERSONA;
import RRHH_Modelo.RHH_PERSONA_DATOS;
import RRHH_Modelo.RHH_PERSONA_PROFESION;
import RRHH_Modelo.RHH_POSTULADO;
import RRHH_Modelo.RHH_POSTULADO_CONVOCATORIA;
import RRHH_Modelo.RHH_PROFESION;
import RRHH_Modelo.RHH_REGIONAL;
import RRHH_Modelo.RHH_SUCURSAL;
import RRHH_Modelo.RHH_TELEFONOS;
import RRHH_Modelo.RHH_USUARIO;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

/**
 *
 * @author equipo_4
 */
@MultipartConfig
@WebServlet(name = "RRHH_APROBACION_DE_POSTULADO", urlPatterns = {"/RRHH_APROBACION_DE_POSTULADO"})
public class RRHH_APROBACION_DE_POSTULADO extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        RHH_USUARIO usuario = ((RHH_USUARIO) request.getSession().getAttribute("usr"));
        String html = "false";
        Conexion con = new Conexion(usuario.getPASSWORD(), usuario.getPASSWORD());
        try {
            String evento = request.getParameter("proceso");
            con.Transacction();
            switch (evento) {
                case "buscarConvocatoria":
                    html = buscarConvocatoria(request, con);
                    break;
                case "postulados":
                    html = postulados(request, con);
                    break;
                case "likes":
                    html = likes(request, con);
                    break;
                case "cargarkardex":
                    html = cargarkardex(request, con);
                    break;
                case "guardarusuario":
                    html = guardarusuario(request, con);
                    break;
                case "existeRepetido":
                    html = existeRepetido(request, con);
                    break;
                case "creacionprofesion":
                    html = creacionprofesion(request, con);
                    break;
                case "abrirDocumento":
                    html = abrirDocumento(request, con);
                    break;
                case "comprobarNick":
                    html = comprobarNick(request, con);
                    break;
                case "validarci":
                    html = validarci(request, con);
                    break;
                case "obtenerCargo":
                    html = obtenerCargo(request, con, usuario);
                    break;

            }
            con.commit();

        } catch (Exception ex) {
            con.rollback();
        }
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/plain");
        response.getWriter().write(html);
        con.Close();
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

    public String obtenerCargo(HttpServletRequest request, Conexion con, RHH_USUARIO usr) throws SQLException {
        try {
            int id = Integer.parseInt(request.getParameter("id"));
            RHH_CARGO cargo = new RHH_CARGO(con);
            cargo.setCon(con);
            cargo = cargo.BuscarXid(id);
            String html = "{\"desc\":\"" + cargo.getDESCRIPCION() + "\", \"tipo\":\"" + cargo.getID_TIPO_DE_CARGO() + "\", \"perfil\":\"" + cargo.getPERFIL();
            RHH_CARGO_DATOS datos = new RHH_CARGO_DATOS(con);
            List<RHH_CARGO_DATOS> list = datos.buscarXcargo(id);
            String scargo = "[";
            for (int i = 0; i < list.size(); i++) {
                datos = list.get(i);
                scargo += datos.getID_DATOS() + ",";
            }
            if (scargo.length() > 1) {
                scargo = scargo.substring(0, scargo.length() - 1);
            }
            html = html + "\",\"datos\":" + scargo + "]" + "}";
            return html;
        } catch (Exception e) {
            con.rollback();
        }
        return "{}";
    }
    private String buscarConvocatoria(HttpServletRequest request, Conexion con) throws ParseException, SQLException {
        RHH_CONVOCATORIA convocatoria = new RHH_CONVOCATORIA(con);
        convocatoria.setCon(con);
        String text = request.getParameter("text");
        List<RHH_CONVOCATORIA> lista = convocatoria.buscarTodasActivos(text);
        String html = "";
        RHH_CARGO cargo = new RHH_CARGO(con);
        RHH_CARGO_DEP_REG_SUC dep = new RHH_CARGO_DEP_REG_SUC(con);
        RHH_DEPARTAMENTO departamento = new RHH_DEPARTAMENTO(con);
        RHH_REGIONAL regional = new RHH_REGIONAL(con);
        RHH_SUCURSAL sucursal = new RHH_SUCURSAL(con);
        for (int i = 0; i < lista.size(); i++) {
            String color = "green";

            cargo = cargo.BuscarXid(lista.get(i).getID_CARGO());
            dep = dep.BuscarXCargos(cargo.getID());
            departamento = departamento.BuscarXid(dep.getID_DEPTO());
            sucursal = sucursal.BuscarXid(dep.getID_SUCURSAL());
            regional = regional.BuscarXid(dep.getID_REGIONAL());
            String dpto = "";
            String reg = "";
            String suc = "";
            if (departamento != null) {
                dpto = departamento.getDESCRIPCION();
            } else {
                departamento = new RHH_DEPARTAMENTO(con);
            }
            if (sucursal != null) {
                suc = sucursal.getDESCRIPCION();
            } else {
                sucursal = new RHH_SUCURSAL(con);
            }
            if (regional != null) {
                reg = regional.getDESCRIPCION();
            } else {
                regional = new RHH_REGIONAL(con);
            }
            html += "<div id='cardPostulado' style='background:" + color + "' onclick='abrirPopUp(" + lista.get(i).getID() + ")'>"
                    + "<div class=\"centrado negrilla\">" + cargo.getDESCRIPCION() + "</div><br>\n"
                    + "<span class=\"negrilla\">Fecha:</span>" + lista.get(i).getFECHA_VENCIMIENTO_CONVOCATORIA() + "<br>"
                    + "<span class=\"negrilla\">Departamento:</span>" + dpto + "<br>"
                    + "<span class=\"negrilla\">Regional:</span>" + reg + "<br>"
                    + "<span class=\"negrilla\">Sucursal:</span>" + suc + "<br>"
                    + "<div style='height:50px;'><div>" + lista.get(i).getDESCRIPCION() + "</div>\n"
                    + "<span class=\"negrilla\">Observacion:</span>"
                    + "<span>" + lista.get(i).getOBSERVACIONES() + "</span>"
                    + "</div><div class=\"centrado\">"
                    + "</div>"
                    + "</div>";
        }
        return html;
    }

    private String likes(HttpServletRequest request, Conexion con) throws SQLException {
        int conv = Integer.parseInt(request.getParameter("conv"));
        int ci = Integer.parseInt(request.getParameter("ci"));
        RHH_PERSONA pers = new RHH_PERSONA(con).Buscar(ci+"");
        RHH_POSTULADO pso=new RHH_POSTULADO(con).BuscarXPersona(pers.getID());
        List<RHH_PERSONA> gustadores = pers.TodosLosQueAprobaron(pso.getID(), conv);
        String html = "<span class='negrillaenter'>" + gustadores.size() + " LIKES</span>";
        for (int i = 0; i < gustadores.size(); i++) {
            pers = gustadores.get(i);
            html += "<span>-" + pers.getPRIMER_NOMBRE() + " " + pers.getPRIMER_APELLIDO() + "</span><br>";
        }
        return html;
    }

    private String postulados(HttpServletRequest request, Conexion con) throws SQLException {
        int id = Integer.parseInt(request.getParameter("id"));
        RHH_POSTULADO postulado = new RHH_POSTULADO(con);
        List<RHH_POSTULADO> lista = postulado.BuscarEnConvocatoria(id);
        RHH_CONVOCATORIA conv = new RHH_CONVOCATORIA(con).BuscarXid(id);
        RHH_PERSONA persona = new RHH_PERSONA(con);
        String html = "";
        for (int i = 0; i < lista.size(); i++) {
            postulado = lista.get(i);
            persona = persona.BuscarxID(postulado.getID_PERSONA());
            String nombre = persona.getPRIMER_NOMBRE() + " ";
            if (persona.getSEGUNDO_NOMBRE() != null || !persona.getSEGUNDO_NOMBRE().equals("null")) {
                nombre += persona.getSEGUNDO_NOMBRE() + " ";
            }
            nombre += persona.getPRIMER_APELLIDO();
            if (persona.getSEGUNDO_APELLIDO() != null || !persona.getSEGUNDO_APELLIDO().equals("null")) {
                nombre += " " + persona.getSEGUNDO_APELLIDO() + " ";
            }

            html += "<div data-ci='" + persona.getCI()+ "' data-foto='"+persona.getFOTO()+"' class='draggable ui-draggable ui-draggable-handle ui-droppable' onclick='seleccionarPostulado(" + persona.getCI() + "," + id + "," + conv.getID_CARGO() + ")' >"
                    + "<div class='centrado' style='display:inline-block; height: 40px; width: 50px;'>\n"
                    + "   <img src='../img/imagen3.jpg' alt='' style='width: 100%; height: 100%;'>\n"
                    + "</div>"
                    + "<span class='negrillaenter'>" + nombre
                    + "</span></div>";
        }
        return html;
    }

    private String cargarkardex(HttpServletRequest request, Conexion con) throws Exception {
        SIS_EVENTOS event=new SIS_EVENTOS();
        String ci=request.getParameter("ci");
        return event.cargaKardex(ci, con);
    }
    private String abrirDocumento(HttpServletRequest request, Conexion con) throws Exception {
        String nombre=request.getParameter("nombre");
        String ci=request.getParameter("ci");
        SIS_EVENTOS event=new SIS_EVENTOS();
        return event.abrirDocumento(ci, nombre); 
    }
    private String creacionprofesion(HttpServletRequest request, Conexion con) throws Exception {
        String desc = request.getParameter("text");
        RHH_PROFESION profe = new RHH_PROFESION(con);
        profe.setDESCRIPCION(desc);
        return profe.Insertar() + "";
    }

    private String existeRepetido(HttpServletRequest request, Conexion con) throws Exception {
        String tipo = request.getParameter("tipo");
        String text = request.getParameter("text");
        RHH_PERSONA per = new RHH_PERSONA(con);
        if (tipo.equals("1")) {
            return per.existeTelefono(text) + "";
        }
        if (tipo.equals("2")) {
            return per.existeCorreo(text) + "";
        }
        return "";
    }

    private String comprobarNick(HttpServletRequest request, Conexion con) throws Exception {
        RHH_USUARIO usu = new RHH_USUARIO(con);
        int existe = usu.existeCuenta(request.getParameter("usuario"));
        return existe + "";
    }

    private String validarci(HttpServletRequest request, Conexion con) throws SQLException, IOException, ServletException {
        String ci = request.getParameter("ci");
        if (ci.length() == 0) {
            return "-1";
        }
        RHH_PERSONA persona = new RHH_PERSONA(con);
        persona = persona.Buscar(ci);
        if (persona == null) {
            return "-1";
        }
        RHH_USUARIO usuario = new RHH_USUARIO(con);
        if (usuario.isBloqueado(ci) == 0) {
            return "-0";
        }
        return "buscar";
    }

    private String telefonosDisponible(HttpServletRequest request, Conexion con) throws SQLException {
        RHH_TELEFONOS telefono = new RHH_TELEFONOS(con);
        List<RHH_TELEFONOS> listatelefono = telefono.TodosDisponibles();
        String html = "";
        for (int i = 0; i < listatelefono.size(); i++) {
            html += "<option value='" + listatelefono.get(i).getID() + "'>" + listatelefono.get(i).getNUMERO() + "</option>";
        }
        if (html.length() == 0) {
            return "<option value='0'>Sin Corporativo</option>";
        }
        return html;
    }

    private String guardarusuario(HttpServletRequest request, Conexion con) throws Exception {
        String ci = request.getParameter("ci");
        String depto = request.getParameter("depto");
        String nombre1 = request.getParameter("nombre1");
        String nombre2 = request.getParameter("nombre2");
        String apepat = request.getParameter("apepat");
        String apemat = request.getParameter("apemat");
        String email = request.getParameter("email");
        String telf = request.getParameter("telf");
        Part part = request.getPart("curr");
        SIS_EVENTOS event=new SIS_EVENTOS();
        InputStream in = part.getInputStream();
        RHH_PERSONA persona = new RHH_PERSONA(con);
        RHH_REGIONAL reg = new RHH_REGIONAL(con);
        
        reg.setCon(con);
        reg = reg.BuscarXid(Double.parseDouble(depto));
        if (part != null && part.getSubmittedFileName().length() > 0) {
            String parrr = "curriculum_" + part.getSubmittedFileName();
            persona.setCURRICULUM(parrr);
            event.subirDocumentos(ci, parrr, in);
        }
        persona=persona.Buscar(ci);
        if(persona==null){
            persona=new RHH_PERSONA(con);
        } 
        persona.setCI(Integer.parseInt(ci));
        persona.setEMAIL(email);
        persona.setLUGAR_EMISION(reg.getACRONIMO());
        persona.setPRIMER_APELLIDO(apepat);
        persona.setPRIMER_NOMBRE(nombre1);
        persona.setSEGUNDO_NOMBRE(nombre2);
        persona.setSEGUNDO_APELLIDO(apemat);
        persona.setTELEFONO(telf);
        int idper=0;
        if(persona.getID()==0){
           idper = persona.Insertar(); 
           persona.setID(idper);
        }else{
            persona.Modificar();
            idper =persona.getID();
        }
        RHH_POSTULADO postulado = new RHH_POSTULADO(con).BuscarXPersona(idper);
        
        List<RHH_DATOS> dtlist = new RHH_DATOS(con).TodosDatos();

        for (int i = 0; i < dtlist.size(); i++) {
            RHH_PERSONA_DATOS pd = new RHH_PERSONA_DATOS(con);
            String dato = request.getParameter(dtlist.get(i).getID() + "");
            String fecha = request.getParameter(dtlist.get(i).getID() + "_o");
            if (dato != null) {
                if (dato.length() > 0) {
                    pd.Eliminar(persona.getID(),dtlist.get(i).getID());
                    pd.setID_DATOS(dtlist.get(i).getID());
                    pd.setID_PERSONA(idper);
                    pd.setDATO(dato);
                    if (fecha != null && fecha.length() != 0) {
                        SimpleDateFormat dt = new SimpleDateFormat("dd/MM/YYYY");
                        pd.setCADUCIDAD(dt.parse(fecha));
                    }
                    pd.Insertar();
                }
            }
        }
        List<RHH_DATOS> doclist = new RHH_DATOS(con).TodosDocs();

        for (int i = 0; i < doclist.size(); i++) {
            RHH_PERSONA_DATOS pd = new RHH_PERSONA_DATOS(con);
            Part pdoc = request.getPart(doclist.get(i).getID() + "");
            if (pdoc != null) {
                String nom = pdoc.getSubmittedFileName();
                if (nom.length() > 0) {
                    pd.setID_DATOS(doclist.get(i).getID());
                    pd.setID_PERSONA(idper);
                    pd.setDATO(pdoc.getSubmittedFileName());
                    pd.Insertar();
                    in = pdoc.getInputStream();
                    event.subirDocumentos(ci,pdoc.getSubmittedFileName(), in);
                }
            }
        }
        String anosexp = request.getParameter("anos");
        String prof = request.getParameter("prof");

        RHH_PERSONA_PROFESION pf = new RHH_PERSONA_PROFESION(con);
        pf.setID_PERSONA(idper);
        pf.EliminarXid();
        pf.setID_PROFESION(Integer.parseInt(prof));
        pf.setANOS(Integer.parseInt(anosexp));
        pf.Insertar();

        String usrs = request.getParameter("usrs");
        String pass = request.getParameter("pass");
        String cargo = request.getParameter("cago");
        if(postulado==null){
            postulado =new RHH_POSTULADO(0, idper, pass);
            postulado.setCon(con);
            int p=postulado.Insertar();
            postulado.setID(p);
        }else{
            postulado.cambiarPass(pass);
        }
        String fechai = request.getParameter("fecha_ini");
        String fechaf = request.getParameter("fecha_fin");
        RHH_USUARIO usu = new RHH_USUARIO(con).BuscarXidPersona(persona.getID());
        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
        RHH_FECHAS_HITO fh = new RHH_FECHAS_HITO(con);
        double salario = Double.parseDouble(request.getParameter("salario"));
        if(usu==null){
            usu = new RHH_USUARIO(con);
            usu.setUSUARIO(usrs);
            usu.setPASSWORD(pass);
            usu.setID_PERSONA(idper);
            usu.setID_CARGO(Integer.parseInt(cargo));
            usu.setESTADO(1);
            usu.setFLAG(1);
            usu.Insertar();
            
            RHH_CARGO ca = new RHH_CARGO(con);
            ca.BuscarXid(Integer.parseInt(cargo));
            fh.setDESCRIPCION("CONTRATACION");
            fh.setID_EVENTO_HITO(3);
            fh.setID_USUARIO(usu.getID());
            fh.setFECHA(format.parse(fechai));
            fh.setSALARIO(salario);
            fh.setDESCRIPCION_CARGO(ca.getDESCRIPCION());
            fh.Insertar();
            if (!fechaf.equals("INDETERMINADO")) {
                fh = new RHH_FECHAS_HITO(con);
                fh.setDESCRIPCION("FINALIZACION DE CONTRATO");
                fh.setID_EVENTO_HITO(21);
                fh.setID_USUARIO(usu.getID());
                fh.setSALARIO(0.0);
                fh.setFECHA(format.parse(fechaf));
                fh.Insertar();
            }
        }else{
            usu.ModificarUSR(usu.getID_CARGO(), usu.getUSUARIO(), pass,usu.getESTADO());
            fh.EliminarIncrementoSalarial(usu.getID());
            Calendar c=new GregorianCalendar();
            fh.setFECHA(c.getTime());
            usu.ModificarCargo(Integer.parseInt(cargo));
            RHH_CARGO cargo2=new RHH_CARGO(con).BuscarXid(Integer.parseInt(cargo));
            fh.setDESCRIPCION("El empleado "+persona+" fue promovido a "+cargo2.getDESCRIPCION());
            fh.setID_USUARIO(usu.getID());
            fh.setSALARIO(salario);
            fh.setID_EVENTO_HITO(9);
            fh.Insertar();
            fh=fh.BuscarxUsuarioEvento(21, usu.getID());
            if(fh==null && !fechaf.equals("INDETERMINADO")){
                fh = new RHH_FECHAS_HITO(con);
                fh.setDESCRIPCION("Ampliacion de contratoo del empleado "+persona+" hasta "+fechaf);
                fh.setID_USUARIO(usu.getID());
                fh.setSALARIO(0.0);
                fh.setID_EVENTO_HITO(10);
                fh.Insertar();
            }
            if(fh!=null && !fh.getFECHA().equals(fechaf)){
                fh.setDESCRIPCION("Se amplio el contrato del empleado "+persona+" de "+fh.getFECHA()+" hasta "+fechaf);
                fh.setID_USUARIO(usu.getID());
                fh.setSALARIO(0.0);
                fh.setID_EVENTO_HITO(10);
                fh.Insertar();
            }
            
        }
        RHH_POSTULADO_CONVOCATORIA pc=new RHH_POSTULADO_CONVOCATORIA(con);
        pc.EliminarXPostulado(postulado.getID());
        RHH_TELEFONOS telfo = new RHH_TELEFONOS(con);
        for (int i = 0; i < 100; i++) {
            String telf1 = request.getParameter("telefono" + i);
            if (telf1 != null && !telf1.equals("0")) {
                Double monto = Double.parseDouble(request.getParameter("montotelf" + i));
                telfo = telfo.BuscarxId(Integer.parseInt(telf1));
                telfo.setID_USUARIO(usu.getID());
                telfo.setMONTO_CREDITO(monto);
                telfo.modificar();
            } else {
                break;
            }
        }

        for (int i = 0; i < 100; i++) {
            RHH_CUENTAS cuenta = new RHH_CUENTAS(con);
            String ncuenta = request.getParameter("cuenta" + i);
            if (ncuenta != null) {
                if (!ncuenta.equals("")) {

                    String banco = request.getParameter("banco" + i);
                    cuenta.setBANCO(banco);
                    cuenta.setCUENTA(ncuenta);
                    cuenta.setID_USUARIO(usu.getID());
                    cuenta.Insertar();
                } else {
                    break;
                }
            } else {
                break;
            }
        }

        List<ADM_TIPO_ACTIVO_FUNGIBLE> af = new ADM_TIPO_ACTIVO_FUNGIBLE(con).TodosActivos();
        for (int i = 0; i < af.size(); i++) {
            String act = request.getParameter("activo_" + af.get(i).getID());

            if (act != null) {
                String cant = request.getParameter("activo_cant_" + af.get(i).getID());
                if (cant.length() == 0) {
                    continue;
                }
                ADM_TIPO_ACT_FUN_USU tafu = new ADM_TIPO_ACT_FUN_USU(usu.getID(), af.get(i).getID(), Integer.parseInt(cant));
                tafu.setCon(con);
                tafu.Insertar();
            }
        }
        af = new ADM_TIPO_ACTIVO_FUNGIBLE(con).TodosFungibles();
        for (int i = 0; i < af.size(); i++) {
            String act = request.getParameter("fungibles_" + af.get(i).getID());

            if (act != null) {
                String cant = request.getParameter("fungibles_cant_" + af.get(i).getID());
                if (cant.length() == 0) {
                    continue;
                }
                ADM_TIPO_ACT_FUN_USU tafu = new ADM_TIPO_ACT_FUN_USU(usu.getID(), af.get(i).getID(), Integer.parseInt(cant));
                tafu.setCon(con);
                tafu.Insertar();
            }
        }

        int contratante = Integer.parseInt(request.getParameter("cago_jefe"));
        RHH_CONTRATO_DIRECTO siolici = new RHH_CONTRATO_DIRECTO(usu.getID(), contratante);
        siolici.setCon(con);
        if(siolici.BuscarXcontratado(usu.getID())==null){
            siolici.Insertar();
        }else{
            siolici.modificar();
        }
        RHH_CONVOCATORIA conv = new RHH_CONVOCATORIA(con).BuscarXid(Integer.parseInt(request.getParameter("conv")));//--
        if(conv !=null && conv.getID_CARGO()==Integer.parseInt(cargo)){
            conv.desactivar(conv.getID());
        }
        Part part45 = request.getPart("file");
        if (part45 != null && part45.getSubmittedFileName().length() > 0) {
            String nombre = "perfil_" + part45.getSubmittedFileName();
            event.subirDocumentos(ci, nombre, in);
        }
        event.Desconectar();
        return idper + "";
    }
}
